package xyz.haijin.mybatisplus.util;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * @Author liuhaijin
 * @Date 2022/4/1
 */
public class BeanUtils extends org.springframework.beans.BeanUtils {

    /**
     * 复制集合对象属性值并生成新的对象集合
     * @param sourceList 原集合
     * @param targetClazz 目标集合类型自述类
     * @param <T> 自述类范型
     * @return 新的目标对象集合
     */
    public static<T> List<T> copyProperties(Collection<?> sourceList, Class<T> targetClazz) {
        List<T> result = new ArrayList<>();
        sourceList.forEach(source-> {
            try {
                T t = targetClazz.newInstance();
                copyProperties(source,t);
                result.add(t);
            } catch (InstantiationException | IllegalAccessException e) {
                e.printStackTrace();
            }
        });
        return result;
    }

}
